<?php

/**
 * YOU核心文件
 */

class YOU {

	/** 定义需要即时加载的类库 **/
	public function __construct ()
	{
		// 加入配置文件
		include (CONFIG_PATH.'common.inc.php');
		// 加载db类
		$this->db     = YOU::loadLib('db', $db_ini);
	}

	/** 加载lib **/
	public static function loadLib ($lib, $options='', $return = '1')
	{
		$file = LIB_PATH."/{$lib}/{$lib}.class.php";
		if(file_exists($file)) include_once ($file);
		else exit("{$lib}载入lib失败,文件不存在...");
		if(class_exists($lib) && $return == '1') return new $lib($options);
	}

	/** 加载model **/
	public static function loadModel ($model, $options='')
	{
		$file = MODEL_PATH."/{$model}.php";
		if(file_exists($file)) include_once ($file);
		else exit("{$model}载入model失败,文件不存在...");
		$model_class = 'Model_'.$model;
		if(class_exists($model_class)) return new $model_class($options);
	}

	/** 执行YOU **/
	public static function run () {

		/** 执行指定动作参数 **/
		if (empty($_GET['a'])) $_GET['a'] = 'default.index';
		$act = explode('.', strtolower($_GET['a']));
		if (empty($act[0])) $act[0] = 'default';
		if (empty($act[1])) $act[1] = 'index';

		include (CONTROL_PATH.'myapp.php');

		if (file_exists(CONTROL_PATH.$act[0].'.php')) {
			include (CONTROL_PATH.$act[0].'.php');
			$act[0] = 'Controller_'.$act[0];

			$app = new $act[0];
			$act[1] = 'action'.$act[1];
			if (method_exists($act[0], $act[1])) {

				// 执行动作
				$app->$act[1]();

			} else {
				exit("no function");
			}
		} else {
			exit("no class");
		}
	}

}



/** 自动加载 **/
function __autoload ($class)
{
	// 兼容phpexcel
	if(strpos($class, "PHPExcel") !== false){
		$tmp = str_replace('_', '/', $class);
		include_once ("lib/phpexcel/".$tmp . '.php');
	}else{

		$tmp = explode('_', $class);
		if (count($tmp) >= 2) {
			include_once (strtolower($tmp[0]) . '/' . strtolower($tmp[1]) . '.php');
		}
	}
}
?>